home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Softdisk Supreme
/
Softdisk Supreme.iso
/
pc
/
DSK Files
/
0-49
/
SD001b.dsk
/
FLASH.CARDS.bas
< prev
next >
Wrap
BASIC Source File
|
2003-06-12
|
7KB
|
172 lines
0 REM ** FRENCH FLASH CARDS **
1 REM ** COPYRIGHT 1981 **
2 REM ** JASON CASTLE **
3 REM ************************
4 :
5 REM * MICROROUTINES *
6 :
7 GOTO 100
9 REM ** SIMULATED FLASH **
10 FOR PAUSE = 1 TO 300: NEXT PAUSE: RETURN
15 GOSUB 10: FOR K = 1 TO 5: VTAB Y: HTAB X: NORMAL : PRINT T$: GOSUB 10: VTAB Y: HTAB X: INVERSE : PRINT T$: GOSUB 10: NEXT K: NORMAL : RETURN
19 :
20 TEXT : PRINT HM$: HGR : HCOLOR= 3: HPLOT 0,0 TO 279,0 TO 279,159 TO 0,159 TO 0,0: RETURN : REM * HOME, THEN DRAW BOX
24 :
25 HPLOT 0,0 TO 279,0 TO 279,159 TO 0,159 TO 0,0: RETURN : REM * DRAW BOX W/O CLEARING SCREEN *
29 REM ** CHECK KEYBOARD **
40 VTAB 11: HTAB 3: INVERSE : PRINT "<CTRL-T> ";: VTAB 11: HTAB 20 - LEN(Q$)/2 +1: PRINT Q$;"<CTRL-R>": NORMAL : RETURN : REM * CENTER *
45 VTAB 11: HTAB 3: INVERSE : PRINT "<CTRL-T> ";: HTAB 20 - LEN(A$)/2 +1: PRINT A$;"<CTRL-R>": NORMAL : RETURN : REM * CENTER *
50 VTAB 6: HTAB 2: PRINT "FRENCH ";: HTAB 9: GET Z$: RETURN
55 VTAB 6: HTAB 2: PRINT " ";: HTAB 29: PRINT "ENGLISH ";: GET Z$: RETURN
60 HPLOT 5,5 TO 274,5 TO 274,154 TO 5,154 TO 5,5: RETURN
99 :
100 REM * INITIALIZATION *
101 :
105 TEXT : HOME : ONERR GOTO 3000
110 FOR I = 3072 TO 3080:K = PEEK(I) +K: NEXT I: IF K = 621 THEN CALL 3072: GOTO 125
115 PRINT CHR$(4)"BRUN LOMEM:": & LOMEM: 16384
120 PRINT CHR$(4)"BRUN FRENCH.GEN"
125 D$ = CHR$(13) + CHR$(4): REM * DOS PREFIX *
130 DIM A(500),Q$(500),A$(500)
135 REM * DB$ = DATA BASE
140 F$ = "INDEX":HM$ = CHR$(12):RF$ = CHR$(18):TF$ = CHR$(20):LF$ = CHR$(17):EL$ = CHR$(14): REM * FILE STRING, HOME, REGULAR FONT, TALL FONT, LARGE FONT, END LINE
144 :
145 REM * TITLE SCREEN *
146 :
148 GOSUB 20: GOSUB 60
150 VTAB 8: HTAB 4: PRINT LF$;"FRENCH<CTRL-R> ";: INVERSE : PRINT "<CTRL-Q>FLASH";: NORMAL : PRINT "<CTRL-R> <CTRL-Q>CARDS"
155 Y = 8:X = 17:T$ = "FLASH": GOSUB 15: PRINT RF$
160 VTAB 13: HTAB 15: PRINT "by Jason Castle"
170 VTAB 18: HTAB 3: INVERSE : PRINT " Press SPACE BAR to continue ...";: NORMAL
175 VTAB 18: HTAB 38: GET Z$
190 IF Z$ < > CHR$(32) THEN 175
195 GOTO 5000
198 :
199 :
200 REM * DISPLAY FRENCH *
201 :
210 GOSUB 400: REM * DRAW CARD *
220 FOR J = 1 TO N:Q$ = Q$(J)
230 GOSUB 40: REM * CENTER PRINT *
240 VTAB 6: HTAB 2: PRINT "FRENCH ";: HTAB 9: GET Z$
250 IF Z$ = CHR$(32) THEN 260
251 IF Z$ = CHR$(13) THEN 230
252 IF Z$ = "M" THEN GOSUB 900
253 GOTO 240
255 IF CHOICE = 3 THEN GOSUB 200: GOTO 220
260 A$ = A$(J)
270 GOSUB 45: REM * CENTER PRINT ENGLISH *
275 VTAB 6: HTAB 2: PRINT " ";: HTAB 29: PRINT "ENGLISH ";: GET Z$
280 IF Z$ = CHR$(32) THEN 290
281 IF Z$ = CHR$(13) THEN 230
282 IF Z$ = "M" THEN GOSUB 900
285 GOTO 275
290 NEXT J
293 PRINT CHR$(7);
295 GOSUB 700: GOTO 220
298 :
299 :
300 REM * DISPLAY ENGLISH *
310 GOSUB 400: REM * DRAW CARD *
320 FOR J = 1 TO N:A$ = A$(J)
330 GOSUB 45: REM * CENTER PRINT ENGLISH *
340 VTAB 6: HTAB 2: PRINT "ENGLISH ";: HTAB 10: GET Z$
350 IF Z$ = CHR$(32) THEN 360
351 IF Z$ = CHR$(13) THEN 330
352 IF Z$ = "M" THEN GOSUB 900
353 GOTO 340
360 Q$ = Q$(J)
370 GOSUB 40: REM * CENTER PRINT FRENCH *
375 VTAB 6: HTAB 2: PRINT " ";: HTAB 30: PRINT "FRENCH ";: GET Z$
380 IF Z$ = CHR$(32) THEN 390
381 IF Z$ = CHR$(13) THEN 330
382 IF Z$ = "M" THEN GOSUB 900
385 GOTO 375
390 NEXT J
393 PRINT CHR$(7);
395 GOSUB 700: GOTO 320
398 :
399 :
400 REM * PRINT CARD & PROMPTS "
410 TEXT : PRINT HM$
420 HGR : HCOLOR= 3
430 HPLOT 0,10 TO 279,10 TO 279,150 TO 0,150 TO 0,10
440 VTAB 2: HTAB 3: PRINT TF$"FRENCH FLASH CARDS";: VTAB 3: PRINT RF$":"
450 VTAB 3: HTAB 23: PRINT DB$: VTAB 21
460 HTAB 5: PRINT "Press ";: INVERSE : PRINT "SPACE BAR";: NORMAL : PRINT " to continue."
465 HTAB 5: PRINT "Press RETURN to repeat a card."
470 HTAB 5: PRINT "Press ";: INVERSE : PRINT "M";: NORMAL : PRINT " to return to menu."
480 POKE 32,1: POKE 33,37: POKE 34,6: POKE 35,17
490 HTAB 2: VTAB 18: PRINT "Number of cards in this set: ";N;
499 :
500 REM * PRINT CARD *
510 FOR Y = 50 TO 120: HPLOT 10,Y TO 270,Y: NEXT Y: REM * DRAW CARD *
520 RETURN
599 :
600 REM * DIRECTORY OF DATA BASES *
601 GOSUB 20: VTAB 2: HTAB 12: PRINT TF$"FRENCH FLASH CARDS";RF$: PRINT : PRINT
602 HTAB 2: PRINT "The following card sets are available:"
603 DB$ = "BASENAME"
605 PRINT D$"OPEN"DB$"FILE"
610 PRINT D$"READ"DB$"FILE"
615 INPUT NR
620 FOR J = 1 TO NR: INPUT R$(J): NEXT J
625 PRINT D$"CLOSE"
627 VTAB 7
630 FOR J = 1 TO NR: HTAB 10: PRINT CHR$(91);J; CHR$(123)" "R$(J): NEXT J: PRINT
635 HTAB 2: INPUT "Which would you like? ";S$:S = VAL(S$): GOSUB 25
640 IF S <1 OR S >J THEN PRINT CHR$(7);: VTAB PEEK(37): PRINT EL$;: GOSUB 25: GOTO 635
645 DB$ = R$(S)
650 REM RETURN
660 :
670 :
699 :
700 REM * READ & RANDOMIZE INDEXFILE *
710 F$ = "INDEX"
720 PRINT D$"OPEN"DB$" "F$"FILE"
730 PRINT D$"READ"DB$" "F$"FILE"
740 INPUT N
750 FOR I = 1 TO N:A(I) = I: NEXT I
760 FOR J = 1 TO N: REM * RANDOMIZE LOOP *
770 X = INT((N -J +1) * RND(1) +1)
780 INPUT Q$(A(X)),A$(A(X))
790 A(X) = A(N -J +1)
795 NEXT J
799 :
800 PRINT D$"CLOSE": REM * CLOSE INDEXFILE *
830 RETURN
890 :
898 :
899 REM * MENU *
900 PRINT HM$: GOSUB 20: REM * DRAW SQUARE *
910 VTAB 4: HTAB 2: PRINT TF$"CHOOSE FROM THE FOLLOWING:"
920 VTAB 7: HTAB 10: PRINT CHR$(91);"A"; CHR$(123);" French to English"
930 HTAB 10: PRINT CHR$(91);"B"; CHR$(123);" English to French"
940 HTAB 10: PRINT CHR$(91);"C"; CHR$(123);" New set of cards"
945 HTAB 10: PRINT CHR$(91);"X"; CHR$(123);" Exit"
950 VTAB 16: HTAB 20: INPUT "WHICH? ";Z$: GOSUB 25
960 IF Z$ = "A" THEN 200
965 IF Z$ = "B" THEN 300
970 IF Z$ = "C" THEN GOSUB 600: GOTO 900
973 IF Z$ = "X" THEN 9000
975 PRINT CHR$(7);: GOTO 950
5000 REM * MAIN PROGRAM *
5005 PRINT HM$: REM * CLEAR SCREEN *
5025 GOSUB 600: REM * READ BASENAMEFILE *
5030 GOSUB 700: REM * READ INDEXFILE *
5040 GOTO 900: REM * MAIN MENU *
5050 REM ON CHOICE GOSUB 200,300,600
5060 :
5999 END
6000 REM * INTRO *
6010 PRINT "INTRO": RETURN
7000 REM * ERROR ROUTINES *
7010 PRINT "ERRORS ": RETURN
8000 REM * INSTRUCTIONS *
8010 PRINT "INSTRUCTIONS": RETURN
9000 REM ** EXIT **
9010 :
9020 GOSUB 20
9050 PRINT HM$: VTAB 10: PRINT "Type 'EXIT' to exit, or press 'RETURN'": PRINT : INPUT "to return to Flash Card program: ";IN$
9060 IF IN$ < >"EXIT" THEN 5000
9070 PRINT HM$: VTAB 12: HTAB 15: PRINT "HIT RESET": END